package com.jt.cotroller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.naming.Name;
import java.util.List;

@RestController
@CrossOrigin
public class UserController{
    @Resource
    private UserService userService;
    /**
     * URL:http://localhost:8090/findAll
     * 参数：无
     * 返回值：List<User>
     * */
    @GetMapping("/findAll")
    public List<User> findAll(){

        return userService.findAll();
    }

    /*
    需求：http://localhost:8090/findUserById?id =1
    返回值：User对象
     */
    @GetMapping("/findUserById")
    public User findUserById(Integer id){
        return  userService.findUserById(id);
    }



    /*
    需求：http://localhost:8090/findUserByName?name =唐僧
    返回值：User对象
     */
    @GetMapping("/findUserByName")
    public User findUserByName(String name){
        return  userService.findUserByName(name);
    }

    /*
    需求：http://localhost:8090/findUserByAs?age=18&sex=女
    参数：age=18 sex=女
    返回值：List<集合>
    参数接受：如果是多个参数，并且参数名称与属性名称一致，可以使用对象接收
     */
    @GetMapping("/findUserByAs")
    public List<User> findUserByAs(User user){
        return userService.findUserByAs(user);
    }

    /*
    需求：http://localhost:8090/updateById?id=1&name=黑熊精&age=3000&sex=男
    RestFul结构说明：参数必须使用/分割
    RestFul请求路径：http://localhost:8090/updateById/1/黑熊精/3000/男
    参数：4个
    返回值：“修改成功”
    restFul结构 参数分析{属性名称}
     */
//    @RequestMapping(value="/updateById/{id}/{name}/{age}/{sex}",
//                    method = RequestMethod.PUT)
    @PutMapping("/updateById/{id}/{name}/{age}/{sex}")
    public String updateById(User user){
        userService.updateById(user);
        return "修改成功";
    }

    /*
    * 需求：http://localhost:8090/findUserByLike?name=乔
    *
    * */
    @GetMapping("/findUserByLike")
    public List<User> findUserByLike(User user){
        return userService.findUserByLike(user);
    }

    /*
    * http://localhost:8090/findUserByIds?ids=1,3,5,7
    * */

    @GetMapping("/findUserByIds")
    public List<User> findUserByIds(int[] ids){
        return userService.findUserByIds(ids);
    }

    /*
    * http://localhost:8090/saveUser/悟空/8000/男
    * */
    @PostMapping("/saveUser/{id}/{name}/{age}/{sex}")
    public void saveUser(User user){
        userService.saveUser(user);
    }
}
